home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #062 (1990-04)(Amiga User Group Deutschland e.V.).zip
/
Franz PD Disk #062 (1990-04)(Amiga User Group Deutschland e.V.).adf
/
Go_Down!
/
Go_Down.asm
< prev
next >
Wrap
Assembly Source File
|
1989-07-02
|
7KB
|
184 lines
* GO_DOWN!
_SysBase equ 4
_LVOOpenLibrary equ -552
_LVOCloseLibrary equ -414
_LVOGetMsg equ -372
_LVOOpenWindow equ -204
_LVOCloseWindow equ -72
_LVOMoveScreen equ -162
_LVOSetWindowTitles equ -276
_LVODelay equ -198
CLOSEWINDOW equ $200
WINDOWCLOSE equ 8
WBENCHSCREEN equ 1
dauer equ 800
verzoegerung equ 0
_main:
jsr OeffneIntuition ;Intuition-Library öffnen
tst.l IntuitionBase ;Fehler?
beq ende3 ;Ja, dann aufhören
jsr OeffneDOS ;DOS-Library öffnen
tst.l DOSBase ;Fehler?
beq ende2 ;Ja, dann aufhören
jsr OeffneWindow ;Fenster öffnen
tst.l WindowHandle ;Fehler?
beq ende1 ;Ja, dann aufhören
move.l #dauer,d1
jsr Warte ;warten
jsr ScreenRunter ;Screen herunterziehen
jsr SchliesseWindow ;Fenster schließen
ende1:
jsr SchliesseDOS ;DOS-Library schließen
ende2:
jsr SchliesseIntuition ;Intuition-Library schließen
ende3:
clr.l d0 ;kein Fehler
rts ;zurück
OeffneIntuition:
lea IntuitionName,a1 ;Zeiger auf Librarynamen
jsr OeffneBibliothek ;Öffnen...
move.l d0,IntuitionBase ;Basisadresse merken
rts ;und zurück ins Hauptprogramm
OeffneDOS:
lea DOSName,a1 ;Zeiger auf Librarynamen
jsr OeffneBibliothek ;Öffnen...
move.l d0,DOSBase ;Basisadresse merken
rts ;und zurück ins Hauptprogramm
OeffneBibliothek:
move.l _SysBase,a6 ;EXEC-Basisadresse nach a6 bringen
moveq #0,d0 ;egal, welche Version
jsr _LVOOpenLibrary(a6) ;öffnen
rts ;zurück
SchliesseIntuition:
move.l IntuitionBase,a1 ;Intuition-Basisadresse nach a1
jsr SchliesseBibliothek ;schließen
rts ;und zurück
SchliesseDOS:
move.l DOSBase,a1 ;DOS-Basisadresse nach a1
jsr SchliesseBibliothek ;schließen
rts ;und zurück ins Hauptprogramm
SchliesseBibliothek:
move.l _SysBase,a6 ;EXEC-Basisadresse nach a6 bringen
jsr _LVOCloseLibrary(a6) ;Bibliothek schließen
rts ;zurück
OeffneWindow:
move.l IntuitionBase,a6 ;Intuition-Basis nach a6
lea mein_fenster,a0 ;Zeiger auf Fensterdaten
jsr _LVOOpenWindow(a6) ;Fenster öffnen
move.l d0,WindowHandle ;Handle speichern
move.l d0,a0 ;Handle nach a0 bringen
move.l 46(a0),ScreenHandle ;ScreenHandle speichern
move.l 86(a0),UserPort ;UserPort speichern
move.l ScreenHandle,a0 ;ScreenHandle nach a0 bringen
move.w 14(a0),ScreenHoehe ;Höhe des Screens speichern
sub.w #10,ScreenHoehe ;-10 Punkte
lea ScreenTitel,a2 ;Name des Screens
lea w_name,a1 ;Windowtitel
move.l WindowHandle,a0 ;Window-Handle nach a0 bringen
jsr _LVOSetWindowTitles(a6) ;Titel neu setzen
rts ;und zurück
SchliesseWindow:
move.l IntuitionBase,a6 ;Intuition-Basis nach a6
move.l WindowHandle,a0 ;Handle nach a0
jsr _LVOCloseWindow(a6) ;Fenster schließen
rts ;und zurück
ScreenRunter:
jsr Message ;Message holen
tst.l d0 ;war eine Message da?
bne zurueck ;wenn ja, dann zurück
move.l ScreenHandle,a0 ;ScreenHandle nach a0
move.w 10(a0),a0 ;Obere Ecke des Screens zum Viewp.
cmp.w ScreenHoehe,a0 ;noch weiter verschieben?
bcc nichtbewegen ;Nein!
jsr Down ;Screen verschieben
move.l #verzoegerung,d1
jsr Warte ;warten
nichtbewegen:
bra ScreenRunter
zurueck:
rts ;Zurück ins Hauptprogramm
Warte:
move.l DOSBase,a6 ;DOS-Basisadresse nach a6
jsr _LVODelay(a6) ;warten ......
rts ;zurück
Down:
move.l IntuitionBase,a6 ;Intuition-Basis nach a6
move.l ScreenHandle,a0 ;ScreenHandle nach a0
move.l #1,d1 ;ein Punkt nach unten
jsr _LVOMoveScreen(a6) ;verschieben
rts ;zurück
Message:
move.l _SysBase,a6 ;EXEC-Basisadresse
move.l UserPort,a0 ;UserPort nach a0
jsr _LVOGetMsg(a6) ;Message holen
rts ;zurück
mein_fenster:
even
dc.w 470,0 ;Koordinaten für links oben
dc.w 100,10 ;Breite,Höhe
dc.b 3,1 ;Schrift und Hintergrundfarben
dc.l CLOSEWINDOW ;IDCMP-Nachrichten
dc.l WINDOWCLOSE ;Schließgadget
dc.l 0 ;keine eigenen Gadgets
dc.l 0 ;kein eigenes CheckMark
dc.l w_name ;Name des Windows
dc.l 0 ;kein eigener Screen
dc.l 0 ;keine eigene Bitmap
dc.w 100,10 ;Mindestausmaße
dc.w 100,10 ;Maximalausmaße
dc.w WBENCHSCREEN ;Fenster liegt im Workbenchscreen
w_name:
even
dc.b 'GO_DOWN!',0
dummy:
even
ds.l 1
WindowHandle:
even
ds.l 1
ScreenHandle:
even
ds.l 1
UserPort:
even
ds.l 1
IntuitionBase:
even
ds.l 1
DOSBase:
even
ds.l 1
IntuitionName:
even
dc.b 'intuition.library',0
DOSName:
even
dc.b 'dos.library',0
ScreenTitel:
even
dc.b 'GO_DOWN - von Christoph Hust -- PUBLIC DOMAIN',0
ScreenHoehe:
even
ds.w 1
end